<?php

namespace Admin\Form\Product;

use Zend\InputFilter\InputFilter;

class FilterAddCategory extends InputFilter {

    public function __construct($actionType) {
        if($actionType == 'add'){
            $requireImage = true;
            $allowEmpty = false;
        }else{
            $requireImage = false;
            $allowEmpty = true;
        }
        //for category name
        $this->add(array(
            'name' => 'category_name',
            'required' => true,
            'filters' => array(
                array('name' => 'stringtrim'),
                array('name' => 'striptags')
            ),
            'validators' => array(
                array(
                    'name' => 'notempty',
                    'options' => array(
                        'messages' => array(
                            \Zend\Validator\NotEmpty::IS_EMPTY => 'Nhập tên danh mục'
                        )
                    )
                )
            )
        ));

        //for category image
        $this->add(array(
            'name' => 'category_image',
            'required' => $requireImage,
            'allow_empty' => $allowEmpty,
            'validators' => array(
                array(
                    'name' => 'fileuploadfile',
                    'break_chain_on_failure' => true,
                    'options' => array(
                        'messages' => array(
                            \Zend\Validator\File\UploadFile::NO_FILE => 'Chọn hình ảnh cho danh mục'
                        )
                    )
                ),
                array(
                    'name' => 'filesize',
                    'break_chain_on_failure' =>true,
                    'options' => array(
                        'max' => 524288,
                        'messages' => array(
                            \Zend\Validator\File\Size::TOO_BIG => 'Dung lượng file lớn. Tối đa 512Kb',
                            \Zend\Validator\File\Size::NOT_FOUND => ''
                        )
                    )
                ),
                array(
                    'name' => 'filemimetype',
                    'break_chain_on_failure' => true,
                    'options' => array(
                        'mimeType' => array('image/gif','image/png','image/jpeg','image/jpg'),
                        'messages' => array(
                            \Zend\Validator\File\MimeType::FALSE_TYPE => 'File không đúng định dạng',
                            \Zend\Validator\File\MimeType::NOT_READABLE => ''
                        )
                    )
                )
            )
        ));
        
        //for category parent
        $this->add(array(
            'name' => 'category_parent',
            'required' => false,
            'allow_empty' => true
        ));
        
        $this->add(array(
            'name' => 'relation_maker_id',
            'required' => true,
            'validators' => array(
                array(
                    'name' => 'notempty',
                    'options' => array(
                        'messages' => array(
                            \Zend\Validator\NotEmpty::IS_EMPTY => 'Chọn hãng sản xuất'
                        )
                    )
                )
            )
        ));
        
        //for category meta title
        $this->add(array(
            'name' => 'category_meta_title',
            'required' => false,
            'allow_empty' => true
        ));
        
        //for category meta keyword
        $this->add(array(
            'name' => 'category_meta_keyword',
            'required' => false,
            'allow_empty' => true
        ));
        
        //for category meta description
        $this->add(array(
            'name' => 'category_meta_description',
            'required' => false,
            'allow_empty' => true
        ));
    }

}
